package com.itsm.example.audit.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itsm.example.audit.pojo.context.AuditContext;
import com.itsm.example.audit.pojo.domain.AuditDO;
import com.itsm.example.audit.pojo.event.AuditEvent;
import com.itsm.example.statemachine.bo.ItsmEvent;

import java.util.List;

/**
 * @author benym
 * @date 2023/7/12 15:53
 */

public interface AuditService  extends IService<AuditDO> {

    /**
     * 状态机执行
     *
     * @param auditContext auditContext
     */
    AuditDO audit(AuditContext auditContext);

    /**
     * 状态机执行
     *
     * @param auditContext auditContext
     */
    List<ItsmEvent> getNextStep(AuditContext auditContext);

    /**
     * 获取状态机Uml图
     *
     * @return String
     */
    String uml(AuditContext auditContext);


}
